package com.liyy.platform.other.mytest;

import java.util.Arrays;

public class BubbleSort
{
	public static void main(String [] args){
		int [] a ={1,9,2,0,5,6,7};
		sortfinal(a);
		
		//测试break效果
		/*for(int i=0;i<10;i++){
			if(i>3){
				break;
			}
			System.out.println(i);
		}*/
		
	}
	
	
	/* 最终版本：考虑存在顺序。假设数据已经有序，后者经过某趟后有序 ，减少趟数
	如: 8 1 2 3 4
	第一趟: 1 2 3 4 8
	第二趟: 1 2 3 4 8  没有交换停止循环
	通过sorted来控制*/
    public static void sortfinal(int[] a){
    	boolean sorted= true;
    	int temp=0;
    	for(int i=0;i<a.length-1;i++){
    		sorted =true; //假设默认已经排好序
    		for(int j=0;j<a.length-1-i;j++){
    			if(a[j]>a[j+1]){
    				temp=a[j];
    				a[j]=a[j+1];
    				a[j+1]=temp;
    				sorted =false; //内层正常循环就设置为false，证明尚未排好序
    			}
    		}
    		if(sorted){ //如果内层循环一次也未执行，证明已经完成排序，直接结束外层循环，循环结束
				break;
			}
    	}
    	System.out.println(Arrays.toString(a));
    }
    
}